Real-time big data application in a heterogeneous network is generally based on analysis and processing of massive sensor data, and a decision is made according to system feedback. Conventionally, raw data is directly uploaded to a server without being processed, thus resulting in low efficiency, greatly wasting network resource, and even causing network congestion, service failure. Therefore, one feasible way is to make full use of processing abilities of network nodes, in which the raw data is first processed by the nodes and then the processed result is transmitted to the server. However, due to factors such as capability anisotropy, stage treatment, and load balancing in the heterogeneous network, more and more specific workflows require to be processed (such as, clipping, format conversion, and noise removal processing) at a certain intermediate node on a path from the source node to the destination node, that is, intermediate processing constraint. The intermediate processing node (intermediate node for short) is generally a machine which is dedicated, has high performance, and has sufficient resource (such as, CPU, GPU and memory).
On the other hand, a soft real-time application includes multiple data flows. Since the data flows have interdependence (some flows need to be processed after other flows have been processed), the expected completion time of respective flows may be different, i.e., the data flows have different deadlines. Moreover, for the soft real-time application, its flow is still valid even if it misses the deadline. Based on this, optimizing the latency of the soft real-time application refers to minimizing a total delay of all flows.
The conventional solutions either merely focus on routing optimization, seeking a shortest transmission path to reduce transmission delay, or merely focus on scheduling flows, to reduce queueing time of flows at the processing node. Since the completion time of the flows depends on the routing delay, the queueing time and the processing time, any optimization from a single perspective cannot realize global optimal allocation of system resource. Thus, the global optimization requires considering both perspectives of routing and scheduling. The routing is how to allocate the intermediate nodes to the flows, and the scheduling is to decide which flows are preferentially processed.